package com.doit.day02

import com.doit.day01.Person

/*
    def:方法声明的标志
    main:方法名称
    (args: Array[String]):参数列表  ==》参数名写在前面，参数类型写在后面，中间要用 : 分割
    java中的 (String[] args)
    : Unit:返回值类型 类似于java中的void ，代表没有返回值的意思  :Int
    ={} 大括号中指的是方法体
    在scala里面，大括号中最后一行代码指的是返回值的类型，不需要写return

方法的注意事项：
1.方法体中最后一行是方法的返回值，可以不用写return，也可以写return,但是，如果你写了return 那么返回值类型就必须得写
2.方法的返回值类型，可以不写，他会根据最后一行，自动推断
3.如果说，一个方法没有参数，那么这个参数列表可以不写,但是，你调用该方法的时候，就不能加括号
如果说，一个方法没有参数，你方法名后面加上了空(),那么调用的时候，()可加可不加，尽量加上

调用：
如果你的方法定义在object类中，那么你可以直接调用(直接写方法名调用)本类中
如果说，定义在其他的object类中，调用的时候，需要  类名.方法名称

如果你的方法定义在class类中，那么就和java中的一样，需要先创建对象，用对象去调用方法

需求：定义一个方法，传入一个参数，这个参数必须得是1-9，如果是其他的，就打印一句话，你上课不听话
如果说是1-9，打印九乘法表，传进去的是几，就打印到几
 */
object _01_方法 {
  def main(args: Array[String]): Unit = {
    val res: Int = add(1, 2)
    println(res)
    //    println(gexMax(1, 2, 3))
    sayHello
  }

  //定义一个两数相加的方法
  def add(a: Int, b: Int) = {
    a + b
  }

  Test01.sayLaoW("老王")


  //定义一个方法，求三个数中的最大值
  def gexMax(a: Int, b: Int, c: Int) = {
    //我假设a是最大值
    var max = a
    //如果b大于了a ，此时最大值是b，b赋值给max
    if (max < b) max = b
    //ab之间的最大值和c进行比较，如果c比较大，那么就把c赋值给max
    if (max < c) max = c
    max
  }




  def sayHello()={
    println("hello")
  }


}
